/*
 * @test
 * @summary Test -AwarnUnneededSuppressions
 *
 * @compile/ref=UnneededSuppressionsTest.out -XDrawDiagnostics -processor org.checkerframework.checker.index.IndexChecker -AwarnUnneededSuppressions UnneededSuppressionsTest.java
 */

import org.checkerframework.checker.index.qual.NonNegative;

public class UnneededSuppressionsTest {

  void method(@NonNegative int i) {
    @SuppressWarnings("index")
    @NonNegative int x = i - 1;
  }

  void method2() {
    @SuppressWarnings("fallthrough")
    int x2 = 0;
  }

  @SuppressWarnings({"tainting", "lowerbound"})
  void method3() {
    @SuppressWarnings("upperbound:assignment")
    int z = 0;
  }

  void method4() {
    @SuppressWarnings("lowerbound:assignment")
    @NonNegative int x = -1;
  }

  @SuppressWarnings("purity.not.deterministic.call")
  void method5() {}

  @SuppressWarnings("purity")
  void method6() {}

  @SuppressWarnings("index:foo.bar.baz")
  void method7() {}

  @SuppressWarnings("allcheckers:purity.not.deterministic.call")
  void method8() {}
}
